<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <input type="text" />
    <button id="btn">计算斐波那契数列</button>
    <script>
      /*
        斐波那契数列：
          1 1 2 3 5 8 13 21 34 ...

          规律就是：从第三个数开始，每个值等于前两个数的和
      */
      // function fibonacci(n) {
      //   if (n <= 2) {
      //     return 1;
      //   }
      //   return fibonacci(n - 1) + fibonacci(n - 2);
      // }

      // document.getElementById("btn").onclick = function () {
      //   const result = fibonacci(50);
      //   console.log(result);
      // };

      // 1. 开启分线程
      // const calcWorker = new Worker("./02.noModule/02.calcWorker.js");
      const calcWorker = new Worker("./02.module/02.calcWorker.js", {
        type: "module",
      });

      document.getElementById("btn").onclick = function () {
        // 2. 通知分线程开始计算（主线程向分线程发送消息）
        calcWorker.postMessage(40);
        // 3. 得到分线程计算结果(主线程接受分线程的消息)
        calcWorker.onmessage = function (e) {
          console.log(e.data);
        };
      };
    </script>
  </body>
</html>
